package com.cy.ppj.service.manager;

import com.cy.ppj.model.PageBean;
import com.cy.ppj.model.Result;
import com.cy.ppj.model.domian.admin.Manager;
import com.cy.ppj.model.enums.ManagerStatus;
import com.cy.ppj.model.query.AuditManagerQuery;
import com.cy.ppj.model.query.ManagerAdminQuery;
import com.cy.ppj.model.vo.AuditManagerVO;
import com.cy.ppj.model.vo.ManagerAdminVO;

public interface ManagerService {

    /**
     * 添加管理员
     * @param manager
     */
    void addManger(Manager manager);

    /**
     * 更新管理员
     * @param manager
     */
    void updateManager(Manager manager);
    
    /**
     * 重置管理员密码
     * @param managerId
     */
	void resetManagerPwd(Long managerId);

    /**
     * 登录
     * @param manager
     */
    Result login(Manager manager);

    /**
     * 查询属于审核员角色的管理员用户列表
     * @param auditManagerQuery
     * @return
     */
    PageBean<AuditManagerVO> selectAuditManagerList(AuditManagerQuery auditManagerQuery);
    
    /**
     * 后台查询管理员列表
     * @param query
     * @return
     */
    PageBean<ManagerAdminVO> selectManagerAdminList(ManagerAdminQuery query);

    /**
     * 更改账号状态
     * @param managerId
     * @param status
     */
	void updateStatus(Long managerId, ManagerStatus status);
	
	/**
	 * 修改密码
	 * 
	 * @param managerId
	 * @param oldPassword
	 * @param newPassword
	 */
	void updatePassword(Long managerId, String oldPassword, String newPassword);
}
